Method, apparatus, and system for monitoring amount of liquid poured from liquid containers

ABSTRACT

Some embodiments of the invention provide a system for monitoring liquid consumption at one or more establishments. At each establishment, the system includes one or more spouts and a local computer. Each spout is mounted on a liquid container. Also, each spout generates data regarding the amount of liquid poured from the spout&#39;s container. The local computer at each establishment collects data generated by the spouts at the establishment. In some embodiments, a wireless network links the local computer and the spouts at each establishment. The system also includes an external computer that gathers the data collected by the local computers of the establishments monitored by the system. In some embodiments, the external computer is located outside of all the establishments, while in other embodiments this computer is located within one of the establishments. Some embodiments of the invention provide a free-pour spout. This spout mounts on an open orifice of a liquid container and measures the amount of liquid poured from the liquid container. This spout has a housing and a passageway defined within the housing. It also has a detection circuit that detects fluid flow through the passageway. In addition, this spout has a measuring circuit that generates data relating to fluid flow when the detection circuit detects fluid flow through the passageway.

CROSS REFERENCE TO EARLIER FILED APPLICATIONS

This application claims the benefit of the United States ProvisionalApplication entitled “Method, Apparatus, and System for MonitoringAmount of Liquid Poured from Liquid Containers,” filed Mar. 9, 2001, andhaving Ser. No. 60/274,418.

FIELD OF THE INVENTION

The invention is directed towards method, apparatus, and system formonitoring amount of liquid poured from liquid containers.

BACKGROUND OF THE INVENTION

The amount of liquids dispensed from liquid containers need to bemonitored for many endeavors today. For instance, the management ofestablishments such as bars and taverns have long found it necessary tocarefully monitor the relationship between liquor dispensed and receiptsby controlling the quantity of liquor dispensed from a specific bottleand recording the sale.

A few systems have been proposed to date for measuring and recording theamount of liquid dispensed from liquid containers. One such systemincludes a spout that is configured to attach to an opening of a liquidcontainer. This spout also uses a portion-control mechanism to controlthe desired amount of liquid poured from the liquid container. The spoutincludes a radio transmitter for emitting signals containing activityinformation. A receiver receives the transmitted signals, and providesthese signals to a computer at the establishment that processes thesignals into text for viewing.

Some establishments have resisted using monitoring systems that utilizeportion-control mechanisms since some consumers find such mechanism tobe obtrusive. Also, portion-control devices require manual activationand are at times bulky. Hence, there is a need for a compact free-pourapparatus that measures the amount of dispensed liquid in an unobtrusivefashion without requiring manual activation.

There is also a need for a remote monitoring system that allows anadministrator to monitor liquid consumption for multiple sites. Ideally,this monitoring system would allow the administrator to monitor liquidconsumption from a variety of remote locations. Also, this systemideally would require minimal technical oversight for the hardware andsoftware that collects the data at each establishment.

SUMMARY OF THE INVENTION

Some embodiments of the invention provide a system for monitoring liquidconsumption at one or more establishments. At each establishment, thesystem includes one or more spouts and a local computer. Each spout ismounted on a liquid container. Also, each spout generates data regardingthe amount of liquid poured from the spout's container. The localcomputer at each establishment collects data generated by the spouts atthe establishment. In some embodiments, a wireless network links thelocal computer and the spouts at each establishment. The system alsoincludes an external computer that gathers the data collected by thelocal computers of the establishments monitored by the system. In someembodiments, the external computer is located outside of all theestablishments, while in other embodiments this computer is locatedwithin one of the establishments.

In some embodiments, each local computer collects raw data from thespouts and passes this raw data to the external computer, which convertsthis raw data into the actual amount dispensed from the liquidcontainers. In other embodiments, a local computer might generate theactual amount dispensed from the liquid container and pass this amountto the external computer. In yet other embodiments, a spout mightgenerate the actual amount dispensed from the liquid container and passthis amount to the local computer.

Some embodiments of the invention provide a free-pour spout. This spoutmounts on an open orifice of a liquid container and measures the amountof liquid poured from the liquid container. This spout has a housing anda passageway defined within the housing. It also has a detection circuitthat detects fluid flow through the passageway. In addition, this spouthas a measuring circuit that generates data relating to fluid flow whenthe detection circuit detects fluid flow through the passageway.

In some embodiments, the detection circuit includes a motion circuitthat detects when the spout is tilted by at least a first angle. Inthese embodiments, once the motion circuit detects that the spout istilted by at least the first angle, the measuring circuit generates atime measurement when the spout remains tilted by at least the firstangle for a threshold time period. This time measurement represents anestimate of the time that liquid was flowing through the passageway.

Also, in some embodiments, the time measurement is derived from at leasttwo time intervals relating to fluid flow. For instance, someembodiments generate the time measurement as the weighted or unweightedsum of two time intervals relating to fluid flow. In some embodiments,one time interval is a pour-initiation period during which fluid beginsto pour through the spout's passageway, and another time interval is afull-pour period during which fluid freely pours through the spout'spassageway.

The fluid flow is laminar during the full-pour period. Some embodimentsdesign the spout's passageway to have certain dimensional attributesthat ensure laminar fluid flow. For instance, in one embodimentdescribed below, the spout's passageway has a bent cylindrical shapethat has a length L (also referred to as height) and a circular crosssection with a diameter D, where the ratio of L and D is less than orequal to 20. One of ordinary skill will realize that other embodimentsmight use different shaped passageways (e.g., might use non-circularcylindrical passageways that have elliptical cross sections or polygonalcross sections). These embodiments could ensure laminar fluid flowsimilarly by selecting a particular set of dimensions (e.g., selecting aparticular height and cross-section size) for the passageway.

In some embodiments, the motion circuit generates a first signal that isactive when the spout is tilted by at least the first angle. In some ofthese embodiments, the motion circuit includes a tilt switch thatoutputs the first signal. This tilt switch closes when the spout istitled by at least a first angle (e.g., in some embodiments, thecoordinate axes of the tilt switch and the spout are aligned, and thetilt switch closes when the spout and tilt switch are tilted by 90°). Inthese embodiments, the closing of the tilt switch makes the first signalactive and the opening of the tilt switch makes the first signalinactive. For instance, in some embodiments, one terminal of the tiltswitch connects to the output terminal that supplies the first signalwhile another terminal of the tilt switch connects to a referencevoltage. In these embodiments, (1) the closing of the tilt switch pullsthe first signal to the reference voltage, which defines the activestate of the first signal, while (2) the opening of the tilt switchcauses the charge on the first signal to drain to a ground state, whichdefines the inactive state of the first signal.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 illustrates a monitoring system according to some embodiments ofthe invention.

FIGS. 2A-2H present several different views of the exterior contour of afree-pour spout used in some embodiments of the invention.

FIG. 3 presents a side-cross sectional view of the spout of FIG. 2.

FIG. 4 presents a perspective view of the top of the spout of FIG. 2.

FIG. 5 illustrates a block diagram of the electronic components on a PCBof the free-pour spout of FIG. 2.

FIG. 6 illustrates a time-measurement process used by a micro-controllerof the free-pour spout of FIG. 2.

FIG. 7 illustrates the housing of the tilt switch.

FIG. 8 pictorially illustrates the types of fluid flow for differenttilting angles of the free-pour spout and the tilt switch.

FIG. 9 presents a timing diagram that pictorially illustrates differentfluid-flow periods.

FIG. 10 illustrates a process that a data processing server performs toconvert the raw packet data that it receives to the actual amount of thedispensed liquid or to the actual status of the spout.

DETAILED DESCRIPTION OF THE INVENTION

The invention is directed towards method, apparatus, and system formonitoring amount of liquid poured from liquid containers. In thefollowing description, well-known structures and devices are shown inblock diagram form in order not to obscure the description of theinvention with unnecessary detail. In other instances, numerous detailsare set forth for purpose of explanation. However, one of ordinary skillin the art will realize that the invention may be practiced without theuse of these specific details. For example, the invention is describedbelow by reference to the Internet, the World Wide Web (WWW) andtechnology related to the Internet and the WWW. However, the sametechniques can easily be applied to other types of electronicinformation distribution systems. For instance, the invention can beapplied to computer networks that use other data communication protocolsand/or use next generation Internet protocols.

I. Overall System

FIG. 1 illustrates a monitoring system 100 according to some embodimentsof the invention. This system allows an administrator to monitor liquidconsumption at one or more establishments 105 (e.g., one or more bars ortaverns). This system includes several components that are located ateach establishment 105 and several components that are located outsideof the establishment. At the establishment, the system includes (1) oneor more spouts 110 for attaching to openings of liquid containers, (2) areceiver 120, (3) a computer 125 or any other data collection device orappliance, and (4) an RS232 link 130 for communicatively coupling thereceiver 120 and computer 125.

The system also includes computers 135 for the administrators of theestablishment. As shown in FIG. 1, the administrator computers can belocated inside or outside of the establishment. Outside of theestablishment 105, the system also includes a data processing server145, an application server 150, and a database 155. The data processingserver and the application server communicatively couple respectively tothe local computer 125 and the administrator computers 135 through theInternet.

As further described below by reference to FIGS. 2-4, each spout 110 isconfigured to attach to an opening of a liquid container. As shown inFIG. 1, each spout includes a transmitter 115 and a measuring apparatus160. Each spout's measuring apparatus provides data relating to theamount of liquid poured from the container affixed to its spout. In someembodiments, the measuring apparatuses calculate the actual amount ofliquid dispensed from their corresponding containers. However, in theembodiments described below, the measuring apparatuses generate raw datarelating to the amount of the dispensed liquid; as further describedbelow, the data processing server 145 converts the raw data to theactual amount of the dispensed liquid.

A variety of different measuring apparatuses can be used in conjunctionwith the present invention. For instance, a spout's measuring apparatuscan be an in-line conductive or inductive flow meter, a portion-controlmechanism, or a free-pour measurement apparatus. An example of anin-line flow meter that can be used in conjunction with the presentinvention is Draft Sentinel Beer Monitoring Equipment of Berg Company.U.S. Pat. No. 6,036,055 discloses an electronic spout 110 that has aportion-control mechanism, which can be used in conjunction with thepresent invention. The disclosure of U.S. Pat. No. 6,036,055 isincorporated herein by reference. Moreover, a novel free-pourmeasurement apparatus will be described below by reference to FIGS. 2-9.

The data generated by each spout's measurement apparatus is transmittedto the receiver 120 by the spout's transmitter 115. In the embodimentsdescribed below, the spout transmitters are radio transmitters thattransmit radio signals to a radio receiver 120. Also, in theseembodiments, a spout's transmitter transmits an engage signal to thereceiver each time its spout is placed on a liquid container, adisengage signal to the receiver each time its spout is removed from theliquid container, and a pour signal each time the spout's measurementapparatus detects a pour.

The transmitter transmits each signal multiple times at random intervalswhen an event occurs (e.g., an engage, disengage, or pour event occurs),in order to ensure reliable reception. In some embodiments, the signalincludes a data packet that contains a serial number, a sequence number,and an event identifier. The serial number provides the identity of aspout, which, as further described below, is assigned (via software) toa particular type of liquid (e.g., to a particular liquor brand) foreach establishment or customer. Hence, the serial number is used by thedata-processing server to identify the type of liquid stored in thecontainer attached to the spout. The sequence number provides a count ofeach unique event of each serial-numbered unit, and therebydifferentiates the reception of different unique events from the sameserial-numbered unit. The event identifier specifies the type of eventthat has occurred. As mentioned above, the event-types are spout engage,spout disengage, and pour. The pour event can be specified by a varietyof raw data. In the free-pour embodiments described below, each pourevent is specified by a time-interval that is measured by themeasurement apparatus of the spout.

The receiver 120 forwards each packet that it receives from thetransmitters 115 to the computer 125 through the RS-232 link, which, insome embodiments, is formed by an RS-232 cable connecting the RS-232ports of the computer and receiver. As mentioned above, each transmittertransmits each signal multiple times in order to ensure reliablereception. After forwarding a received packet to the computer, thereceiver discards the other identical copies of the packet that itreceives. In some embodiments, the receiver (1) stores in a table theserial number and sequence number of each packet that it forwards to thecomputer, and (2) discards the received packets that have serial andsequence numbers that match serial and sequence numbers recorded in thetable. The table is a FIFO table; hence, when it fills up, the firstentry in the table is deleted in order to record the next entry.

The computer stores the packets that it receives from the receiver in adata file. The computer can be a typical personal computer, workstationsor server. In some embodiments, this computer is a data-collecting“brick” with minimal or no interactions with individuals at theestablishment. At pre-specified intervals (e.g., every five minutes),the computer sends through the Internet the data file with the collectedpacket to the data processing server 145. The transmitted data fileidentifies the establishment from which the data was collected. In someembodiments, the computer 125 connects to the Internet through adedicated high-speed connection, such as a DSL connection.

The data-processing server either directly connects to the Internet, orconnects to the Internet through a Web Server (not shown), to receivethe data files transmitted by the computer 125. As further describedbelow, the data-processing server converts the raw packet data that itreceives to the actual amount of the dispensed liquid or to the actualstatus of the spout. This server then stores the generated amount orstatus in the database 155.

As further described below, an administrator of the establishment canthen search the database to obtain various business-related reports,displays, or other information. The administrator queries this databasethrough the application server, which communicatively couples to theadministrator's computer 135 through the Internet. Like thedata-processing server, the application server 150 either directlyconnects to the Internet, or connects to the Internet through a WebServer (not shown).

II. Free-Pour Spout

A. Physical Design.

FIGS. 2A-2H present several different views of the exterior contour of afree-pour spout used in some embodiments of the invention. In addition,FIG. 3 presents a side-cross sectional view of this spout, while FIG. 4presents a perspective view of the top of this spout.

The bottom portion 330 of this spout is inserted into the top of aliquid container. The bottom portion includes a cork that flexes tosnuggly attach the spout to the liquid container. Different size corkscan also be mounted on the bottom portion in order to allow the spout toaffix to liquid containers with different sized openings.

As shown in FIGS. 3 and 4, the spout includes a fluid-flow passageway305, a breather tube 310, a printed circuit board (“PCB”) 315 with anumber of electronic components, a battery 320, an LED 325, and anengage switch 340. The dimensions of the fluid-flow passageway arespecifically selected to ensure laminar fluid flow of liquid when theliquid-container and hence the spout are inclined at a certain angle(e.g., 20°) past the horizontal axis of the liquid-container. Forinstance, in some embodiments, the ratio (L/D) of the passageway'slength (L) and width (or diameter D) is selected to be equal to or lessthan 20 in order to ensure laminar fluid flow.

When the spout is positioned on a liquid container, the breather tube310 provides an air inlet that allows better fluid flow through thepassageway 305. The battery 320 provides power for the electroniccomponents of the PCB 315. The LED 325 is configured to turn on when thespout engages after it is firmly placed on a liquid container. In someembodiments, the LED can also be operated to blink when liquid isdispensed through the spout, or when the spout is removed from theliquid container.

The engage switch 340 is formed by on-off button 345 that springs up andseals a sense switch 350 on the PCB when the bottom portion 330 isinserted into a liquid container. When the bottom portion 330 is removedfrom the liquid container, the on-off button 345 springs back andthereby opens the sense switch 350. In some embodiments, the on-offbutton is pushed up by the liquid container lip that defines thecontainer's opening. In other embodiments, this button is pushed up byanother mechanism, such as the cork of the bottom portion.

B. Electronic Design

FIG. 5 illustrates a block diagram of the electronic components on thePCB 315. As shown in this figure, the PCB includes a transmitter 115 anda measuring apparatus 160. The measuring apparatus includes a tiltswitch 335, an engage/disengage switch 340, combinatorial logic 515, amicro-controller 505, and a clock 510.

As mentioned above, the measuring apparatus generates three types ofsignals that it forwards to the transmitter 115, which, in turn, relaysthese signals to the receiver 120. These three signals are (1) an engagesignal, (2) a disengage signal, and (3) a pour signal. The transmittertransmits each signal multiple times at random intervals, and eachsignal includes a data packet that contains a serial number, a sequencenumber, and an event identifier, as described above.

The measuring apparatus' micro-controller generates the engage signaland disengage signal respectively when the spout is placed on the liquidcontainer and is removed from the liquid container. Specifically, whenthe spout is placed on or removed from the liquid container, the engageswitch 340 toggles as described above.

The toggling of the engage switch toggles the signal 520 comings fromthe switch, and the toggling of this signal causes the combinatoriallogic 515 to generate an interrupt signal that is supplied to themicro-controller 505. The interrupt signal causes the micro-controllerto detect the toggling of the engage signal, and to thereby generate asignal that specifies the engage or disengage event. When themicro-controller detects that the spout has engaged a liquid container,it also activates the LED for one second or until it detects that thespout has been disengaged from the liquid container.

The micro-controller 505 generates the pour signal each time it detectsa pour through the spout's passageway. Specifically, the measuringapparatus generates a pour signal whenever the micro-controller detectsthat the tilt switch 335 has generated an active signal (i.e., wheneverthe tilt switch closes) for more than a predetermined amount of time(such as 0.3 seconds). Each time the tilt switch closes, the tilt-switchsignal 525 is active, and the combinatorial logic 515 generates aninterrupt signal that the micro-controller receives.

When the micro-controller notices the interrupt signal, it uses atime-measuring algorithm to detect whether the tilt-switch signalremains active for more than the predetermined amount, and if so, tomeasure the duration of the active period. After the micro-controllermeasures the duration of an active period, it generates a pour signalthat specifies the duration of the active period. As further describedbelow, in some embodiments, the micro-controller measures theactive-period duration by measuring several time intervals and summingthe measured intervals. It should be noted that in some embodiments themicro-controller transitions to a lowered-power state each time ittransmits one set of packets. The micro-controller comes out of itslowered-power state whenever it receives an interrupt signal.

C. Time-Measurement Process.

FIG. 6 illustrates a time-measurement process used by themicro-controller to measure the duration of periods when the tilt switchis closed for more than a pre-specified time interval. Before explainingthis process, the assumptions that were made in designing this processshould first be explained.

In some embodiments, the tilt switch is a mercury switch that has acylindrical housing, as shown in FIGS. 4 and 7. As shown in FIG. 7, thecentral axis of this housing is vertical (i.e., is at 90°) with respectto the horizontal axis of the PCB and the spout. Given the geometricconfiguration and the typical length of the spout's passageway 305,fluid freely pours through the passageway when the spout's and thecontainer's vertical axis is inclined about 20° or more below thecontainer's stationary horizontal axis. This is demonstrated in FIG. 8.This free-fluid flow is referred to below as a “full pour” event.

However, as presented in FIG. 8, some fluid begins to pour through thespout's passageway from when the container is horizontal to when it isat −20° from the horizontal axis (i.e., from when the spout's verticalaxis is parallel to the stationary horizontal axis to when the spout'svertical axis is inclined about 20° below the stationary horizontalaxis). This fluid flow is referred to below as a “pour initiation”event.

Also, as presented in FIG. 8, some fluid pours through the spout'spassageway as the server is terminating the pour. Specifically, somefluid pours through the passageway from when the container is about −20°from the horizontal axis to when the container is horizontal (i.e., fromwhen the spout's vertical axis is inclined about 20° below thestationary horizontal axis to when the spout's vertical axis is parallelto the stationary horizontal axis). This fluid flow is referred to belowas a “pour completion” event.

To obtain an accurate measurement of fluid flow, it is important tomeasure the time period for the pour initiation, pour completion, andfull pour events. It is also important not to measure the duration offalse pour events. False pour events occur when the tilt switch isaccidentally toggled for less than a pre-specified time interval t_(f).In the embodiments below, the pre-specified time interval is 300milliseconds. Such accidental toggles can occur for a variety ofreasons, such as the movement of the container, etc.

The time-measurement process 600 illustrated in FIG. 6 starts when itreceives a hardware generated interrupt due to the tilt switch. Theprocess then disables (at 604) all the interrupts of themicro-controller. It next determines (at 606) whether the spout is on acontainer (i.e., whether it has previously detected a spout engageactivity and has not since detected a spout disengage activity). If theprocess determines that the spout is not on the container, the processclears (at 608) the pour interrupt flag and enables all the interruptsof the micro-controller. The process then ends.

Otherwise, the process defines (at 610) a pouring state variable p_stateequal to 1, and sets a pouring variable P1, a non-pouring variable NP1,and a first-time-period variable t1 to 0. The process then waits (at612) for 100 milliseconds. It then increments (at 614) the first-timeperiod variable t1 by 1. All time-period variables used by thismicro-controller measure time periods in 100 ms intervals.

After 614, the process determines (at 616) whether liquid is stillpouring through the spout. The process makes this determination byexamining the signal 525 from the tilt switch (i.e., by determiningwhether this signal is still active). If the signal from the tilt switchis no longer active, the process (at 618) increments the not-pourvariable NP1 by 1 and sets the pour variable P1 to 0. The process thendetermines (at 620) whether the not-pour variable NP1 equals 4. If not,the process returns to 612. If so, the tilt-switch signal was a falsepour detection signal, as the signal from this switch did not remainactive for more than 300 milliseconds after its initial activationbefore going inactive for more than 300 milliseconds. One example of afalse detect is illustrated in FIG. 9. When the process detects (at 620)a false pour, the process clears (at 622) the pour interrupt flag andenables all the interrupts. The process then ends.

If the process determines (at 616) that liquid is still pouring throughthe spout, it increments (at 624) the pour variable P1 by 1 and sets thenot-pour variable NP1 to 0. The process then determines (at 626) whetherthe pour variable P1 equals 4. If not, the process returns to 612. Ifso, the initial tilt-switch signal was the start of a pour initiationprocess as the signal from this switch remained active for more than 300milliseconds after its initial activation without going inactive formore than 300 milliseconds. The time period t1 measured until nowrepresents the duration of the pour initiation period. One example ofthe pour-initiation period is illustrated in FIG. 9. When the processdetects (at 626) a pour-initiation period, the process defines (at 628)the pouring state p_state equal to 2, and sets a non-pouring variableNP2 and a second-time-period variable t2 to 0. The process then waits(at 630) for 100 milliseconds. It then increments (at 632) thesecond-time period variable t2 by 1.

Next, the process determines (at 634) whether the sum of t1 and t2 isgreater than 254. If so, the process has detected a maximum pouroperation. Hence, at 636, it sends a max_pour message signal. It thenclears (at 638) the pour interrupt flag and enables all the interrupts.The process then ends.

On the other hand, if the process determines (at 634) that the sum of t1and t2 is not greater than 254, it determines (at 640) whether liquid isstill pouring through the spout. If so, it sets (at 642) the not-pourvariable NP2 to 0, and then returns to 630. Otherwise, the processincrements (at 644) the not-pour variable NP2 by 1. The process thendetermines (at 646) whether the not-pour variable NP2 equals 4. If so,the full pour and pour completion operations have been completed, as thesignal from the tilt switch has been inactive for more than 300milliseconds. Examples of full pour and pour completion periods areillustrated in FIG. 9.

When the process detects (at 646) the completion of the full pour andpour completion operations, the process adds (at 648) the first andsecond time periods t1 and t2. The process then sends a pour signal tothe transmitter. This pour signal includes the added value (i.e., thesum of t1 and t2), in addition to the serial and sequence numbers asdescribed above. In some embodiments, the process transmits each signalmultiple times in order to ensure that the receiver receives thesignals. After transmitting each set of packets, the process waits for atime out period t3, and then clears (at 638) the pour interrupt flag andenables all the interrupts. The process then ends.

Even though the process 600 generates the pouring-interval signal byadding t1 and t2, other embodiments generate this amount by measuringseveral time intervals, weighting the measured time intervals, andsumming the weighted intervals. These embodiments weight the timeintervals in order to account for different fluid flow during thoseintervals.

D. Engage and Disengage Signals.

As discussed above, in addition to the pour signal, the micro-controlleralso sends engage and disengage signals to the transmitter 115 fortransmission to the receiver 120. The micro-controller sends the engagesignal whenever it receives an interrupt due to the activation of theengage signal. The micro-controller sends a disengage signal whenever itreceives an interrupt due to the deactivation of the engage signal. Likethe pour signal, the engage and disengage signals include the serial andsequence numbers as described above.

III. Receiver and Computer

The transmitter transmits each signal that it receives from themicro-controller to the receiver. The transmitter transmits each signalmultiple times at random intervals in order to ensure reliablereception. The receiver can be configured by purchasing off-the-shelfcomponents.

As discussed above, the firmware of the receiver is designed to forwardeach packet that it receives from the transmitters 115 to the computer125 through the RS-232 link, and to use a look-up table to discardduplicate copies of the same packets that it receives. Specifically, thereceiver (1) stores in a table the serial number and sequence number ofeach packet that it forwards to the computer, and (2) discards thereceived packets that have serial and sequence numbers that match serialand sequence numbers recorded in the table. The table is a FIFO table;hence, when it fills up, the first entry in the table is deleted inorder to record the next entry.

The computer stores the packets that it receives from the receiver in adata file. The computer can be a typical personal computer, workstation,or server. In some embodiments, this computer is a data-collecting“brick” with minimal or no interactions with individuals at theestablishment. At pre-specified intervals (e.g., every five minutes),the computer sends through the Internet the data file with the collectedpacket to the data processing server 145. The transmitted data fileidentifies the establishment from which the data was collected. In someembodiments, the computer 125 connects to the Internet through adedicated high-speed connection, such as a DSL connection.

IV. Data Processing Server

FIG. 10 illustrates a process 1000 that the data processing serverperforms to convert the raw packet data that it receives to the actualamount of the dispensed liquid or to the actual status of the spout.This process starts each time the data processing server wants toprocess a file that it receives from a computer 125 of an establishment105.

Initially, this process 1000 identifies (at 1005) the establishmentand/or customer from which it received the file. In some embodiments,the file contains an identifier specific to the establishment and/orcustomer that sent the file. The server retrieves this identifier fromthe file, and uses this identifier to retrieve from the database theidentity of the originating establishment and/or customer.

The received file contains one or more raw data packets. Hence, theprocess selects a raw data packet (at 1010) from the file. The processthen determines (at 1015) whether the packet relates to a pour activityby examining the event field of this packet. If not, the packet relatesto an engage or disengage activity. Hence, at 1020, the process recordsthe engage or disengage activity in the database, and then terminates.The process records the engagement and disengagement of the spout inorder to allow an administrator to detect any unauthorized engagements,disengagements, pourings, or cheatings by the employees of theestablishment.

On the other hand, if the packet relates to a pour activity, the processidentifies (at 1025) the liquid associated with the pour from the serialnumber contained in the packet. As mentioned above, the serial numberprovides the identity of a spout, which through a particular databasetable for the identified customer and/or establishment is mapped to aparticular type of liquid (e.g., to a particular liquor brand).

Next, the process retrieves (at 1030) from the database the flow factorassociated with the identified liquid. The process then calculates (at1035) the flow amount by multiplying the flow factor with the timeinterval stored in the packet. The process then records (at 1040) thecalculated value in the database.

Some embodiments of the invention perform other calculations at thispoint based on the flow amount computed at 1035. These computations caninclude the cost associated with the computed amount, the sale value ofthis amount, the expected profit on this sale, the remaining inventoryof the identified liquid, etc. These calculations can be performed, andthe resulting values can be recorded in one or more database tables, at1045.

The process determines (at 1050) whether it has examined all the packetsin the received file. If not, the process returns to 1010 to selectanother packet, and repeat 1015-1045 for the next packet. Otherwise, theprocess ends.

V. Application Server

An administrator of the establishment can search the database 155 toobtain various business-related reports, displays, or other information.As mentioned above, the administrator queries this database through theapplication server, which communicatively couples to the administrator'scomputer 135 through the Internet. Examples of analysis reports that theadministrator can generate include reports relating to sales, inventorydepletion, cost of goods sold, and pouring cost calculations.

To generate such reports, the administrator initially supplies acustomer identification and/or password. The application server thenchecks the supplied information to qualify the administrator to querythe database. The administrator can then query the database to generateany number of reports, such as those mentioned above. The administratortypically generates such reports by selecting the type of report that heor she wishes to see and providing a time frame for the report.

In some embodiments, the application server generates the reports byretrieving data from the database and performing calculations based onthe retrieved data. It should be noted that some or all of thecomputations necessary from some of the reports might be pre-computed bythe data processing server at 1045 of process 1000.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. Thus, one of ordinary skill in the artwould understand that the invention is not to be limited by theforegoing illustrative details, but rather is to be defined by theappended claims.

1-58. (canceled)
 59. A method for measuring the amount of liquid pouredfrom a liquid container, the method comprising: a) detecting a mountingof a spout to the liquid container, wherein the spout has a passagewaythrough which fluid in the container can pour out of the container,wherein the passageway has a plurality of dimensional attributes thatensure laminar fluid flow through the passageway when the spout isrotated by a first particular angle; b) detecting the tilting of theliquid container by at least a first tilting angle; and c) generatingdata relating to fluid flow after detecting the tilting of the liquidcontainer by at least the first tilting angle.
 60. The method of claim59, wherein detecting the tilting of the liquid container furthercomprises determining whether the liquid container has remained tiltedby at least the first tilting angle for a threshold period of time. 61.The method of claim 59, wherein generating data relating to fluid flowcomprises: generating a time measurement when the liquid containerremains tilted by at least the first tilting angle for a threshold timeperiod, wherein the time measurement represents an estimate of the timethat liquid was flowing through the passageway.
 62. The method of claim61 further comprising transmitting the generated time measurement. 63.The method of claim 62 further comprising transmitting, with each timemeasurement, an identifier that uniquely specifies a pouring eventassociated with the time measurement.
 64. The method of claim 63,wherein the identifier is a sequence number.
 65. The method of claim 63further comprising transmitting, with each time measurement, a spoutidentifier that identifies the spout.
 66. The method of claim 60,wherein the time measurement is derived from at least two time intervalsrelating to fluid flow.
 67. The method of claim 66, wherein the timemeasurement is the sum of the two time intervals relating to fluid flow.68. The method of claim 66, wherein the time measurement is the weightedsum of the two time intervals relating to fluid flow.
 69. The method ofclaim 66, wherein one time interval is a pour initiation period duringwhich fluid begins to pour through the spout's passageway, and anothertime interval is a full-pour period during which fluid freely poursthrough the spout's passageway.
 70. The method of claim 69, whereinduring the full pour period the fluid flow is laminar.
 71. The method ofclaim 70, wherein another time interval is a pour completion periodduring which fluid flow through the spout's passageway is not laminar.72. The method of claim 59, wherein the passageway has a length and adiameter, and the ratio of the length and the diameter is no more than aparticular value.
 73. The method of claim 72, wherein the particularvalue is
 20. 74. The method of claim 60, wherein detecting tilting ofthe liquid container comprises generating a first signal that is activewhen the liquid container is tilted by at least the first tilting angle.75. The method of claim 60, wherein detecting the tilting of the liquidcontainer is not performed by the spout.
 76. The method of claim 60,wherein generating data relating to fluid flow is not performed by thespout.
 77. The method of claim 60, wherein detecting the tilting of theliquid container is performed by an apparatus coupled to the liquidcontainer.
 78. The method of claim 59, wherein the dimensionalattributes of the passageway ensure laminar fluid flow when the spout isrotated by a second particular angle.